/***********************************************************************************************************************************
Gz Compress

Compress IO using the gz format.
***********************************************************************************************************************************/
#ifndef COMMON_COMPRESS_GZ_COMPRESS_H
#define COMMON_COMPRESS_GZ_COMPRESS_H

#include "common/io/filter/filter.h"

/***********************************************************************************************************************************
Filter type constant
***********************************************************************************************************************************/
#define GZ_COMPRESS_FILTER_TYPE                                     STRID5("gz-cmp", 0x20d1ef470)

/***********************************************************************************************************************************
Level constants
***********************************************************************************************************************************/
#define GZ_COMPRESS_LEVEL_DEFAULT                                   6
#define GZ_COMPRESS_LEVEL_MIN                                       -1
#define GZ_COMPRESS_LEVEL_MAX                                       9

/***********************************************************************************************************************************
Constructors
***********************************************************************************************************************************/
FN_EXTERN IoFilter *gzCompressNew(int level, bool raw);

#endif
